package com.lzp.service.center;

import com.lzp.pojo.Orders;
import com.lzp.pojo.vo.OrderStatusCountsVO;
import com.lzp.utils.PagedGridResult;

/**
 * 用户中心订单管理
 *
 * @author dtyy
 * @date 2020/10/18
 */
public interface MyOrdersService {

    /**
     * 查询用户中心订单列表
     *
     * @param userId      用户id
     * @param orderStatus 订单状态（可选）
     * @param page        第几页
     * @param pageSize    每页条数
     * @return
     */
    public PagedGridResult queryMyOrders(String userId,
                                         Integer orderStatus,
                                         Integer page,
                                         Integer pageSize);

    /**
     * 更新订单状态
     *
     * @param orderId 订单id
     */
    void updateDeliverOrderStatus(String orderId);

    /**
     * 查询我的订单
     *
     * @param userId
     * @param orderId
     * @return
     */
    Orders queryMyOrder(String userId, String orderId);

    /**
     * 更新订单状态 —> 确认收货
     *
     * @return
     */
    boolean updateReceiveOrderStatus(String orderId);

    /**
     * 删除订单（逻辑删除）
     *
     * @param userId
     * @param orderId
     * @return
     */
    boolean deleteOrder(String userId, String orderId);

    /**
     * 查询用户订单数
     *
     * @param userId
     */
    OrderStatusCountsVO getOrderStatusCounts(String userId);

    /**
     * 查询用户中心订单动向
     *
     * @param userId   用户
     * @param page     第几页
     * @param pageSize 每页条数
     * @return
     */
    public PagedGridResult getOrdersTrend(String userId,
                                          Integer page,
                                          Integer pageSize);

}
